// temp 可以是 number 或 string
let temp: number | string = 8

// 把 temp 赋值了一个 string 类型
// temp = '8'

// // 出来的都是 string 相关的提示
// temp.

// temp = 9
// // 出来的都是数值相关的提示
// temp.

// 需求：数组里面有可能是数字或字符串

// arr 是 number 或 有 string 组成的数组
// const arr: number | string[] = 8

// number 组成的数组 或 string 组成的数组
// const arr: number[] | string[] = ['1', '3', '5']

// 有 string 或 number 组成的数组
// const arr: (number | string)[] = [1, 3, '5']

// 举例
/* let timer = null
// 定时器的返回值是 number，你把 number 给了 null 类型，不允许
timer = setInterval(() => {}) */

/* let timer:number = -1
timer = setInterval(() => {}) */

// 联合类型解决
let timer: null | number = null
timer = setInterval(() => {})
